#ifndef CLIENT_SHELL_SURFACE_H
#define CLIENT_SHELL_SURFACE_H
//******************************************************************************
//*this code is protected by the GNU affero GPLv3
//*author:Sylvain BERTRAND <sylvain.bertrand AT gmail dot com>
//*                        <digital.ragnarok AT gmail dot com>
//******************************************************************************
struct shell_surface{
  s32 surface_slot;
};

s8 shell_surface_new_visible(struct client *c,u32 shell_surface_id,
                                                              s32 surface_slot);
s8 shell_surface_pong(struct client *c,s32 shell_surface_slot,u32 serial);
s8 shell_surface_move(struct client *c,s32 shell_surface_slot,
                                                        u32 seat_id,u32 serial);
s8 shell_surface_resize(struct client *c,s32 shell_surface_slot,
                                              u32 seat_id,u32 serial,u32 edges);
s8 shell_surface_set_top_level(struct client *c,s32 shell_surface_slot);
s8 shell_surface_set_transient(struct client *c,s32 shell_surface_slot,
                                   u32 parent_surface_id,s32 x,s32 y,u32 flags);
s8 shell_surface_set_full_screen(struct client *c,s32 shell_surface_slot,
                                        u32 method,u32 framerate,u32 output_id);
s8 shell_surface_set_popup(struct client *c,s32 shell_surface_slot,u32 seat_id,
                        u32 serial,u32 parent_surface_id,s32 x,s32 y,u32 flags);
s8 shell_surface_set_maximised(struct client *c,s32 shell_surface_slot,
                                                                 u32 output_id);
s8 shell_surface_set_title(struct client *c,s32 shell_surface_slot,void *title);
s8 shell_surface_set_class(struct client *c,s32 shell_surface_slot,void *class);
#endif
